iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
Cloud Native

你累了嗎,今天來點克勞內提夫!系列 第 17

Day 17 Helm values.yaml && _helpers.tpl

  • 分享至 

  • xImage
  •  

今天要來接著介紹 Helm 中通常用來存放變數的地方,就是 values.yaml_helpers.tpl 這兩個檔案。

values.yaml

首先先來說 values.yaml ,這個檔案從副檔名就可以大概猜出來如何撰寫,沒錯,就是使用 YAML 的方式來進行撰寫,那我就不多說,直接來個簡單的範例。

replicaCount: 1

image:
  repository: postgres
  tag: latest
  
service:
  type: NodePort
  port: 5432
  nodeport: 30080

以上就是一個簡單的 values.yaml 範例,基本上就是想怎麼寫就怎麼寫,使用到的時候取的到就可以了。

_helpers.tpl

接著就是要來介紹另一個存放變數的地方 _helpers.tpl ,這個檔案必須放在 templates 的資料夾底下,而且這個檔案血的方式也不太一樣,先上個範例:

{{/*
Name
*/}}
{{- define "mychart.name" -}}
{{- default .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Full Name
*/}}
{{- define "mychart.fullname" -}}
helmtest
{{- end -}}

{{/*
Label
*/}}
{{- define "mychart.selectorLabels" -}}
app: {{ include "mychart.name" . }}
{{- end -}}

{{/*
Service Label
*/}}
{{- define "mychart.labels" -}}
app: mychart-service
{{- end -}}

不知道各位有沒有看懂這個檔案在寫什麼,簡單來說,要定義一個變數,開頭的 define 跟結尾的 end 是必須的,至於 define 後面接的字串是變數名稱。中間的區塊則是變數的值,值可以長的奇形怪狀都沒關係,反正到時候 Helm 就原封不動的塞進去。至於在 define 前方的 {{/**/}} 刮起來的東西是註解。

經過這麼一解說,各位有沒有看懂了,至於這兩個檔案功能差在哪裡呢?

通常來說, values.yaml 會用來放比較常用且簡單的變數,例如 replica 的數量或是簡單的名稱之類的; _helpers.tpl 則會用來存放不常改變或結構較複雜的變數,例如整陀 YAML 之類的。

那麼今天就到這邊,明天接著介紹其他東西。


上一篇
Day 16 Helm Chart.yaml
下一篇
Day 18 Helm templates
系列文
你累了嗎,今天來點克勞內提夫!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言